// samsting : this file is auto create.

#ifndef ALIYUN_Yundun_SummaryResponse_H_
#define ALIYUN_Yundun_SummaryResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Yundun {

class SummaryResponse : public AcsResponse {
public:
  SummaryResponse();

  class Ddos {
    friend class SummaryResponse;
  public:
    int64 GetCount(void) const;
    int64 GetHostCount(void) const;
  private:
    int64  Count_;
    int64  HostCount_;
  }; // Ddos 


  class BruteForce {
    friend class SummaryResponse;
  public:
    int64 GetCount(void) const;
    int64 GetHostCount(void) const;
  private:
    int64  Count_;
    int64  HostCount_;
  }; // BruteForce 


  class Webshell {
    friend class SummaryResponse;
  public:
    int64 GetCount(void) const;
    int64 GetHostCount(void) const;
  private:
    int64  Count_;
    int64  HostCount_;
  }; // Webshell 


  class RemoteLogin {
    friend class SummaryResponse;
  public:
    int64 GetCount(void) const;
    int64 GetHostCount(void) const;
  private:
    int64  Count_;
    int64  HostCount_;
  }; // RemoteLogin 


  class WebAttack {
    friend class SummaryResponse;
  public:
    int64 GetCount(void) const;
    int64 GetHostCount(void) const;
  private:
    int64  Count_;
    int64  HostCount_;
  }; // WebAttack 


  class WebLeak {
    friend class SummaryResponse;
  public:
    int64 GetCount(void) const;
    int64 GetHostCount(void) const;
  private:
    int64  Count_;
    int64  HostCount_;
  }; // WebLeak 

  const Ddos& GetDdos(void) const;
  const BruteForce& GetBruteForce(void) const;
  const Webshell& GetWebshell(void) const;
  const RemoteLogin& GetRemoteLogin(void) const;
  const WebAttack& GetWebAttack(void) const;
  const WebLeak& GetWebLeak(void) const;
  int64 GetStatus(void) const;
  int64 GetAbnormalHostCount(void) const;

private:
  Ddos Ddos_;
  BruteForce BruteForce_;
  Webshell Webshell_;
  RemoteLogin RemoteLogin_;
  WebAttack WebAttack_;
  WebLeak WebLeak_;
  int64  Status_;
  int64  AbnormalHostCount_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Yundun {

#endif // #ifndef ALIYUN_Yundun_SummaryResponse_H_

// end of file 
